package com.waypolice.manager.service;

import com.waypolice.pojo.CmsBorRegFile;
import com.waypolice.pojo.CmsBorRegister;

import java.util.List;
import java.util.Map;

/**
 * 描述:
 *
 * @author zyp
 * @description 借阅登记service接口
 * @create 2019-03-12 14:52
 */
public interface BorRegisterService {

    /**
     * @author:zyp
     * @description 借阅登记记录
     * @date: 2019/3/12 16:37
     * @return
     */
    Map<String, Object> getRegisterList(Integer offset, Integer limit,String search, String sort, String order, String fileType);

    /**
     * @author zyp
     * @description 插入数据之后的同时，查询id
     * @date 2018/5/8 9:35
     * @param
     * @return
     */
    long insertSelectId(CmsBorRegister cmsBorRegister);
    
    /**
     * @author:zyp
     * @description 根据主键修改借阅登记
     * @date: 2019/3/12 15:44
     * @return 
     */
    void updateByPrimaryKeySelective(CmsBorRegister cmsBorRegister);

    /**
     * @author:zyp
     * @description 根据主键修改借阅登记
     * @date: 2019/3/25 15:45
     * @return 
     */
    void updateByPrimaryKey(CmsBorRegister cmsBorRegister);

    /**
     * @author:zyp
     * @description 先将线下借阅的未在指定时间求取的文档置为已失效
     * @date: 2019/3/12 16:10
     * @return 
     */
    void updateBorStatusTo2();
    
    /**
     * @author:zyp
     * @description 将检索超过目标期限的文档修改为已过期
     * @date: 2019/5/31 10:25
     * @return 
     */
    void updateSearchStatusTo3();

    /**
     * @author:zyp
     * @description 借阅记录的审核信息数据
     * @date: 2019/3/12 17:36
     * @return 
     */
    Map<String ,Object> getApprovalInfo(Integer offset, Integer limit, String sort, String order,Long id);

    /**
     * @author:zyp
     * @description 将借阅登录id 、借阅文件id、文件形式插入到登记 文件关联表中
     * @date: 2019/3/18 17:28
     * @return
     */
    void insertBorrowRegFile(long cmsBorRegisterId,String borrowFileId,String fileShape);

    /**
     * @author:zyp
     * @description 获取线下的借阅归还列表
     * @date: 2019/3/20 18:25
     * @return 
     */
    Map<String, Object> getBorrowReturnList(Integer offset, Integer limit, String sort, String order, String fileType);

    /**
     * @author:zyp
     * @description 根据登记主键ID获取借阅（检索）文件ID
     * @date: 2019/3/21 10:21
     * @return
     */
    List<CmsBorRegFile> selectBorRgtistById(Long id);

    /**
     * @author:zyp
     * @description 根据登记Id获取登记表数据
     * @date: 2019/3/25 14:45
     * @return 
     */
    CmsBorRegister getRegistById(Long id);

    /**
     * @author zyp
     * @description 根据任务类型查出当天的登记数量
     * @date 2018/5/14 14:12
     * @param
     * @return
     */
    int countByTaskType(long borType,String data);

    /**
     * @author:zyp
     * @description 获取检索登记数据
     * @date: 2019/3/29 9:08
     * @return 
     */
    Object getSearchRegister(int offset,int limit,String sort,String order);
    
    /**
     * @author:zyp
     * @description 授权检索登记目录
     * @date: 2019/3/29 11:15
     * @return 
     */
    Object accreditSearchRegiser(String fileIds,String registerIds);

    /**
     * @author:zyp
     * @description 生成登记策略号
     * @date: 2019/4/18 9:09
     * @return 
     */
    String producePolicyNum(CmsBorRegister cmsBorRegister);

    /**
     * @author:zyp
     * @description 根据用户id，查询当前已经申请成功的消息列表
     * @date: 2019/4/24 14:01
     * @return 
     */
    List<CmsBorRegister> selectAuditSuccessList(int userId);
    
    /**
     * @author:zyp
     * @description 根据用户id 查询当前将要过期的列表
     * @date: 2019/4/24 14:26
     * @return 
     */
    List<CmsBorRegister> selectExpireList(int userId);

    /**
     * @author:zyp
     * @description 获取我的检索的文件内容
     * @date: 2019/6/17 10:02
     * @return 
     */
    Object mySearchData(int offset,int limit,String sort,String order);

}